home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / voyager7.exe / HP48.CC < prev    next >
Text File  |  1991-02-23  |  14KB  |  614 lines

  1. 017B0 Error Beep suppressed?
  2. 017B7 frequency = 0?
  3. 02911 room for more?
  4. 02919 push A (System Binary)
  5. 0291C ...
  6. 0291F continue RPL
  7. 02933 room for more?
  8. 0293B push to data stack
  9. 0293E ...
  10. 02941 continue RPL
  11. 02955 room for more?
  12. 0295D push to data stack
  13. 02960 ...
  14. 02963 continue RPL
  15. 02977 room for more?
  16. 0297F push to data stack
  17. 02982 ...
  18. 02985 continue RPL
  19. 0299D room for more?
  20. 029A5 push to data stack
  21. 029AB continue RPL
  22. 029BF room for more?
  23. 029C7 push to data stack
  24. 029CA ...
  25. 029CD continue RPL
  26. 029E8 room for more?
  27. 029F0 push to data stack
  28. 029F3 ...
  29. 029F6 continue RPL
  30. 02A0A room for more?
  31. 02A12 push to data stack
  32. 02A15 ...
  33. 02A18 continue RPL
  34. 02A5C continue RPL
  35. 02D59 save C (popped by RTNNC)
  36. 02D88 return if space available
  37. 02DA5 put rtn ptr in D0 ...
  38. 02DA7 and D0 (PC) in C
  39. 02DAA push PC onto rtn stack ...
  40. 02DAD ...
  41. 02DB0 set B (rtn ptr) ...
  42. 02DB3 ...
  43. 02DB5 inc new PC past 02D9D
  44. 02DB8 get next routine
  45. 02DBB inc PC
  46. 02DBE call next rpl routine
  47. 02E75 push A (addr of 02E6D = addr of local name)
  48. 02E78 ...
  49. 02E7B goto RPL pgm @ 02FD6
  50. 02F15 push A
  51. 02F1B goto RPL pgm @ 02fd6
  52. 03019 flag first time through
  53. 0301C save D1 on RSTK ...
  54. 0301F ...
  55. 03021 save B on RSTK ...
  56. 03023 ...
  57. 03029 second time?
  58. 0302A read next object
  59. 0302E get next object
  60. 03031 skip next object
  61. 03037 get type of RPL Routine
  62. 03041 not RPL Obj Type?
  63. 03046 Literal RPL Object in code - Skip Past
  64. 03066 restore B
  65. 0306A restore D1
  66. 03130 Get Return SP into D0
  67. 03132 ...
  68. 03135 pop rtn stk into A ...
  69. 03138 ...
  70. 0313B set D0 to new PC
  71. 0313E set B (rtn ptr)
  72. 03142 get next routine
  73. 03145 inc PC
  74. 03148 call next RPL routine
  75. 03164 Let C.A = (DEPTH+1) * 5
  76. 03185 BET
  77. 0318D room on stack?
  78. 0318F if not, make some
  79. 03192 get obj @ TOS
  80. 03195 push object again
  81. 0319B continue RPL
  82. 031A9 BET
  83. 031D6 BET
  84. 03228 C = stk1
  85. 0322B point to stk2
  86. 0322E A = stk2
  87. 03231 replace stk2 with stk1
  88. 03234 point to stk1
  89. 03237 replace stk1 with stk2
  90. 0323A continue RPL
  91. 03249 pop stk1
  92. 0324C ...
  93. 0324E continue RPL
  94. 0325D pop two objects from the stack
  95. 03260 more stack space avail
  96. 03262 ...
  97. 03264 continue RPL
  98. 032BF BET
  99. 032E7 C = addr of stk1
  100. 032EA C = old D1, D1 = addr of stk1
  101. 032ED skip prolog
  102. 032F0 A = pick level
  103. 032F3 save C
  104. 032F5 nothing to pick?
  105. 032FA A = 5*A
  106. 032FC ...
  107. 032FE ...
  108. 03300 ...
  109. 03302 retore C
  110. 03304 A = picked level addr
  111. 03306 D1 = picked level addr
  112. 03309 A = addr of picked level
  113. 0330C restore original D1
  114. 0330F replace stk1 w/picked level
  115. 03312 continue RPL
  116. 03416 need 1 stack element
  117. 03435 alloc C elements if room
  118. 03437 was room so ok
  119. 0343A out of memory!
  120. 03567 pop stk1 into A.A
  121. 0356A ...
  122. 0356D ...
  123. 03585 continue RPL
  124. 03678 push A on stack
  125. 0367B continue RPL
  126. 03A86 stack space avail?
  127. 03A88 no, make some
  128. 03A8B push A.A
  129. 03A8E ...
  130. 03A91 continue RPL
  131. 03A9B save A
  132. 03AB0 restore A
  133. 03AB3 stack space avail?
  134. 03AB5 yes, continue
  135. 03AB8 no memory avail!
  136. 03AC5 stack space avail?
  137. 03AC7 nope, make some
  138. 03ACA push A (which is 3AC0)
  139. 03AD0 continue RPL
  140. 03AEF BET
  141. 03B43 BET
  142. 03B94 BET
  143. 03D53 put TOS -> D1 ...
  144. 03D56 save D1 in A
  145. 03D59 skip obj prolog
  146. 03D5C get obj val ?
  147. 03D5F restore D1
  148. 03D62 pop stack
  149. 03D67 save obj val
  150. 03D69 get TOS -> D1 ...
  151. 03D6C save D1 in C
  152. 03D6F skip prolog
  153. 03D72 get obj val -> A
  154. 03D75 restore D1
  155. 03D78 restore C
  156. 03F5D get obj @ TOS in D1 ...
  157. 03F60 and save D1 in A
  158. 03F63 skip obj prolog
  159. 03F66 get obj value (expect System Binary)
  160. 03F69 restore D1
  161. 03F6C pop stack
  162. 03F71 save <System Binary> on RSTK
  163. 03F73 get obj @ TOS in D1 ...
  164. 03F76 and save D1 in C
  165. 03F79 skip obj prolog
  166. 03F7C get obj val (expect System Binary)
  167. 03F7F restore D1
  168. 03F82 pop stack
  169. 03F85 inc free space
  170. 03F87 restore <System Binary>
  171. 05023 save D0 (PC)
  172. 05149 continue RPL
  173. 0533C save TOS
  174. 05352 need #A nibbles
  175. 053A4 save D1 on RSTK ...
  176. 053A7 ...
  177. 053B7 unable to alloc?
  178. 054AC BET
  179. 054BD pop stack -> A,R1,D0
  180. 054C9 ...
  181. 054CB skip obj prolog
  182. 054D0 save 0 on RSTK
  183. 0554C already GC?
  184. 055D2 BET
  185. 055E4 len of string+len
  186. 05633 BET
  187. 056C7 copy System Binary val to c
  188. 056C9 copy System Binary val to d
  189. 056CB get obj ptr @ TOS into D0 ...
  190. 056CE ...
  191. 056D1 skip obj prolog (assume composite object, i.e. list)
  192. 056DB B=#0312B
  193. 056DF go if D was == 0
  194. 056E2 get addr from composite object
  195. 056EC go if D was == 0
  196. 056F5 BET
  197. 05A08 pop stack -> A
  198. 05A0B ...
  199. 05A0E inc free space
  200. 05A16 put obj ptr in D1
  201. 05A19 skip obj prolog
  202. 05A1C get obj size
  203. 05A1F skip obj size
  204. 05A29 sub size fld from obj size
  205. 05A2D obj size >= 5?
  206. 05A32 obj size at least 1?
  207. 05A34 nope, push <0h>
  208. 05A37 put (obj val size)-1 in P ...
  209. 05A3A ...
  210. 05A3E since obj val size < 5, 0 rest of A
  211. 05A40 get obj val into A
  212. 05A4E BET
  213. 05A56 A.A = ptr to stk1
  214. 05A59 pop stk1
  215. 05A5C ...
  216. 05A64 D1 = ptr to orig stk1
  217. 05A67 skip prolog
  218. 05A6A clear A.A
  219. 05A6C A.A = stk1 character
  220. 05A86 save System Binary in R0
  221. 05A89 need 7 nibbles for Character
  222. 05AA3 store Character prolog
  223. 05AA6 skip prolog
  224. 05AA9 restore System Binary into C
  225. 05AAC store data into Character
  226. 05AD7 get object adr
  227. 05ADA save D1 in C, move stk1 ptr into D1
  228. 05ADD change prolog of stk1 to A.A
  229. 05AE0 restore D1
  230. 05AE3 continue RPL
  231. 05D29 BET
  232. 05DB9 BET
  233. 05EBD continue RPL
  234. 05F21 stack space avail?
  235. 05F23 return if so
  236. 05F26 no memory free!
  237. 05F57 continue RPL
  238. 05F87 continue RPL
  239. 06537 flag first try for memory
  240. 0653A check if A in ROM System Binary Table
  241. 06544 is A < #2C?
  242. 06555 need 15 nibbles
  243. 0656B compute free space b/w RPL RSTK & Data Stk
  244. 0656D test room for D nibbles
  245. 0656F not enough room?
  246. 06579 Create System Binary from R0
  247. 06593 push obj ptr in A
  248. 0659B second try?
  249. 065A4 flag second try for memory
  250. 065B4 let A.A = 10*A.A
  251. 065C5 compute table index
  252. 065CB check avail space
  253. 065CD go if space avail
  254. 06641 get ptr to stk1 object
  255. 06644 ...
  256. 06647 A.A = System Binary's value
  257. 0664A grab System Binary value
  258. 0664D restore data stack ptr
  259. 06650 pop stk1
  260. 06653 ...
  261. 0679B save D0 (i.e. RPL PC)
  262. 067AF save d1 in 70579 ...
  263. 067B2 ...
  264. 067B5 ...
  265. 067BF save B in 70574 ...
  266. 067C1 ...
  267. 067CB save D in 7066E ...
  268. 067CD ...
  269. 0680D Let C = TOS Ptr
  270. 06817 Let A = RPL RSTK Ptr
  271. 0681A Let C = Free Space B/W RSTK & TOS
  272. 06B15 alloc B.A Nibbles ...
  273. 06B18 ...
  274. 06B1A ...
  275. 06E9C get next object
  276. 06E9F save D0 (RPL PC) on RSTK ...
  277. 06EA2 and put command in D0
  278. 06EA4 get object type
  279. 06EB1 is obj not type marker?
  280. 06ECE push to the stack ...
  281. 06ED1 ...
  282. 06ED4 continue RPL
  283. 06F1B BET
  284. 06FD6 get next object
  285. 06FD9 put in D0 and save D0 in A
  286. 06FDC get object's prolog
  287. 06FE6 restore D0
  288. 06FE9 not RPL Object Literal?
  289. 06FEE Let A = D0 ...
  290. 06FF1 ...
  291. 06FF4 if A=C (was RPL Object Literal)
  292. 06FF7 get next object
  293. 06FFA save continue pt in B ...
  294. 06FFC put RPL RSTK PTR in D0
  295. 06FFF pop RPL RSTK
  296. 07002 get previous rtn addr
  297. 07005 put in PC
  298. 07008 restore B; put orig A.A in C
  299. 0700A inc free space (popped rtn stk)
  300. 0700C use orig A.A as RPL cont
  301. 070C8 C = stk1
  302. 070CB save stk1
  303. 070CD pop stk1
  304. 070D0 C = stk2
  305. 070D3 save stk2
  306. 070D5 pop stk2
  307. 070D8 A = stk3
  308. 070DB pop stk3
  309. 070DE popped 3 objects
  310. 070E5 ...
  311. 070EE go if stk3 = True
  312. 070F7 evalute stk2 or stk1
  313. 0723F continue RPL
  314. 072E7 point to current loop counter
  315. 0737B save adr of stk1 command
  316. 07402 save start loop value into R2
  317. 0740B save end loop value into R3
  318. 07BE4 get ptr to stk1 object
  319. 07BE7 ...
  320. 07BEA skip object prolog
  321. 07BED A.A = System Binary value
  322. 07BF0 mask for library#
  323. 07BF7 mask A.A (000-7FF)
  324. 07DA9 d0 = local var ptr ...
  325. 07DAC ...
  326. 07DAF a = addr first local var
  327. 07DB2 no local vars?
  328. 07E5B copy object# into R3
  329. 07E62 copy library# into R2
  330. 07E69 put XLIB Name onto stack
  331. 07E6C continue RPL
  332. 07E7B save addr of stk1 command
  333. 07E84 D0 = adr of stk1 command
  334. 07E87 point to object#
  335. 07E8A A = object#
  336. 07E8D copy object# into R3
  337. 07E90 point to library#
  338. 07E93 A = library#
  339. 07E96 BET
  340. 07E9E save adr of stk1 command
  341. 07ED1 replace stk1 with False
  342. 07ED4 continue RPL
  343. 07EDE clear library 0F0 indicator
  344. 07EE1 D0 = ptr to XLIB Name
  345. 07EE4 clear A.W
  346. 07EE7 A.11 = XLIB Name (data)
  347. 07EEB R3 = XLIB Name (data)
  348. 07EEE D0 = ptr to obj#
  349. 07EF1 B.A = obj#
  350. 07EF3 ...
  351. 07EF7 ...
  352. 07EF9 D0 = ptr to lib#
  353. 07EFC A.A = lib#
  354. 07F0D set library 0F0 indicator
  355. 07F17 return if not found
  356. 07F1A A = 5(obj#+1)
  357. 07F1C ...
  358. 07F1E ...
  359. 07F20 ...
  360. 07F22 ...
  361. 07F24 skip link table's prolog
  362. 07F27 C.A = size of link table
  363. 07F2A is obj# not in link table? return w/carry set
  364. 07F2F C.A = ptr to size field
  365. 07F32 A.A = ptr to obj#'s link
  366. 07F34 D0 = ptr to obj#'s link
  367. 07F37 A.A = obj#'s link (offset)
  368. 07F3A no link? return w/carry set
  369. 07F3F C.A = ptr to obj#'s link
  370. 07F42 A.A = obj#'s link (absolute)
  371. 07F9D A.A = ptr to stk1 object
  372. 07FAD C.A = ptr to HOME directory
  373. 07FB0 stk1 = HOME direcory?
  374. 07FB5 D0 = ptr to stk1 (non-HOME directory)
  375. 07FB8 D0 = ptr to attachments field
  376. 07FBB A.A = attachment
  377. 07FBD ...
  378. 07FC1 C = no attachment indicator
  379. 08078 replace stk1 w/object
  380. 08106 request hash table
  381. 08121 request message table
  382. 0812D reqest link table
  383. 08148 request config code
  384. 081EB BET
  385. 08204 BET
  386. 082FF continue RPL
  387. 08441 D.X = number of known libraries
  388. 08444 ...
  389. 08447 D0 = ptr to first library#
  390. 0844A count this library
  391. 0844D return if no more (carry set)
  392. 08450 C.X = library#
  393. 08453 found library?
  394. 08458 past library? (return w/carry set)
  395. 0845D D0 = ptr to next library#
  396. 08460 BET
  397. 08463 point to library address
  398. 08466 D0 = library address
  399. 08469 ...
  400. 084E3 return if library not found
  401. 084E6 D0 = adr of link table offset
  402. 084E9 ST11: 0=link table,1=config code
  403. 084EE D0 = adr of config code offset
  404. 084F1 A.A = offset to link/config
  405. 084F4 no link/config? return w/carry set
  406. 084F6 D0 = adr of link table offset
  407. 084F9 C.A = adr of link/config offset
  408. 084FC A.A = adr of link/config
  409. 084FE D0 = adr of link/config
  410. 08DF8 BET
  411. 1401A save D0 in C / Let D0 = 706FF
  412. 1401F set Last Err# to 0
  413. 14022 restore D0 (PC)
  414. 1402F Let @70600 = 0
  415. 14032 restore D0 (PC)
  416. 16812 let C = 10*C
  417. 18852 Save D0
  418. 18863 Store <0h> at 7065A
  419. 18866 Restore D0
  420. 18A27 save D1 (SP)
  421. 18A31 Let A = Bottom/Start of Stack
  422. 18A34 Let A = (DEPTH+1) * 5
  423. 18A4A Set 706FD.1 = 0
  424. 18A4E restore D1
  425. 18AC1 set c.s = 1
  426. 18AC9 get obj(s) on TOS (depends on P)
  427. 18ACD save obj ptr(s) in R0
  428. 18AD0 save D1 (SP) on RSTK ...
  429. 18AD3 ...
  430. 18ADC get BOS ptr into A
  431. 18ADF get size of stack * 5 in A
  432. 18AE1 set P to (#obj)*5
  433. 18AE5 P=0; C.0 = 5 or 0xA
  434. 18AF0 not enough on stack?
  435. 18AF5 compute (DEPTH-args)*5
  436. 18AF7 save (DEPTH-args)*5
  437. 18B12 restore obj ptrs
  438. 18B15 save obj ptrs
  439. 18B2A save # args in 705ba???
  440. 18B2E restore D1 ...
  441. 18B30 ...
  442. 18B35 (7069f) = stack size * 5
  443. 18B3F set nibble @ 706fd to 0 ...
  444. 18B42 ...
  445. 18B46 restore D1 (SP) ...
  446. 18B48 ...
  447. 18C77 save D0 in A
  448. 18C7D compute Current Command value
  449. 18C8A store command
  450. 18C8D restore D0
  451. 18CE3 force positive
  452. 18CF8 is it positive?
  453. 18CFD otherwise 0
  454. 18D03 set A.A to largest System Binary ...
  455. 18D05 ...
  456. 18D11 continue RPL
  457. 18D1B handle 0
  458. 18FBA save D0 on RSTK ...
  459. 18FBD ...
  460. 18FC0 ...
  461. 18FC5 save D1 on RSTK ...
  462. 18FC8 ...
  463. 18FCA ...
  464. 18FCD get next object
  465. 18FD7 at end of RPL Pgm?
  466. 18FE3 not System Binary literal?
  467. 18FE8 skip prolog (02911)
  468. 18FEB get value in C
  469. 18FEE No Carry is True
  470. 18FF1 save D0 in A and
  471. 18FF4 skip obj prolog
  472. 18FF7 get obj value (expect System Binary?)
  473. 18FFA restore D0
  474. 18FFD skip over object
  475. 19009 flag C.0 < F
  476. 19012 flag C.0 was F
  477. 19017 save C on RSTK
  478. 19019 Let C.A,A.A = C.P ...
  479. 1901B ...
  480. 1901E ...
  481. 19020 Let A.A = 5 * A.A ...
  482. 19022 ...
  483. 19024 ...
  484. 19026 was C.0 == F?
  485. 1908B goto RPL
  486. 1A560 pop -> C
  487. 1A566 inc free space
  488. 1A568 save D1 in C; Let D1=obj ptr
  489. 1A56B skip obj prolog
  490. 1A56E get obj val (expect System Binary)
  491. 1A571 restore D1
  492. 1B478 BET
  493. 1C6EE continue RPL
  494. 29E43 BET
  495. 29FDA get obj ptr @ TOS into D1 ...
  496. 29FDD and save D1 in C
  497. 29FE0 skip obj prolog
  498. 29FE3 get obj val (expect Real)
  499. 29FE7 restore D1
  500. 29FEA pop stack
  501. 29FED inc free space
  502. 2A195 save A
  503. 2A198 restore A (ENTRY POINT)
  504. 2A1CF save D0 in A ...
  505. 2A1D2 ...
  506. 2A1DC construct real @ D0 with value of R0
  507. 2A1EF push new Real
  508. 2A735 BET
  509. 2A768 BET
  510. 2A785 BET
  511. 2A796 BET
  512. 2A79E put TOS -> D1 ...
  513. 2A7A1 save D1 in C
  514. 2A7A4 skip prolog
  515. 2A7A7 get obj val -> A (expect Real?)
  516. 2A7AB restore D1
  517. 2A7AE negative?
  518. 2A7B3 zero?
  519. 2A7B8 BET
  520. 2A867 continue RPL
  521. 2A87C BET
  522. 2A8ED BET
  523. 2A94C BET
  524. 2A958 BET
  525. 2A9A3 BET
  526. 2AA9B BET
  527. 2AAF3 BET
  528. 4452C BET
  529. 51A38 XFER: contine RPL
  530. 5375A signal use User Flags
  531. 53766 signal use System Flags
  532. 53F22 BET
  533. 53F36 BET
  534. 53F66 BET
  535. 53F8D set up stack as popped
  536. 53F99 get obj @ TOS in D1 ...
  537. 53F9C ...
  538. 53F9F skip obj prolog
  539. 53FA2 get obj val (expect System Binary)
  540. 53FB0 Let D = <System Binary> - 5 - 1
  541. 53FB2 pop stack
  542. 53FBE Let C = C >> 2
  543. 53FC1 and Set SB if (C & 3) != 0
  544. 53FC4 Now C.B = (C.B / 4) - 1
  545. 53FCF save C
  546. 53FD9 restore C
  547. 5422C save A ???
  548. 5422F clear tried GC flag
  549. 54238 save C ???
  550. 5427B save A.A
  551. 5428C restore A.A
  552. 54407 if positive, ok
  553. 5EDBE C = s1
  554. 5EDC1 C = d1, D1 = s1
  555. 5EDC4 A = prolog of s1
  556. 5EDC7 Restore D1
  557. 60F1E BET
  558. 61219 BET
  559. 6137D BET
  560. 613B3 BET
  561. 613E4 BET
  562. 618DF unpop one System Binary
  563. 618F4 BET
  564. 61907 pop stack
  565. 61930 BET
  566. 61954 TOS was == FALSE?
  567. 61957 pop stack
  568. 6195A inc free space
  569. 61990 BET
  570. 619B9 BET
  571. 619C8 BET
  572. 61A02 pop stack -> A ...
  573. 61A05 ...
  574. 61A08 inc free stack space
  575. 61A11 set carry if was True
  576. 61A38 BET
  577. 61ADD Let C = D0 ...
  578. 61AE0 ...
  579. 61AE3 and save D0 on RSTK
  580. 61B09 save D0 on RSTK
  581. 61B0E ...
  582. 61B28 get object of interest
  583. 61B2E get object type in A
  584. 61B42 BET
  585. 61EF5 A.A = ptr to stk1 obj, C.A = ptr to RPL obj
  586. 61FCF A.A = ptr to stk1 object
  587. 61FD2 C.A = ptr to end of base ROM
  588. 61FD9 stk1 object in base ROM?
  589. 61FDE no, return w/carry clear
  590. 61FE2 C.A = ptr to stk1 object
  591. 61FE4 save ptr to stk1 object
  592. 61FE6 point to faked-out XLIB Name
  593. 61FF3 restore ptr to stk1 object
  594. 61FF7 go if XLIB Name not found
  595. 61FFA do stk1 and RPL addrs match? return w/carry set
  596. 6205B save C (obj prolog to test for)
  597. 6205D get TOS -> D1 ...
  598. 62060 save D1 in C
  599. 62063 get obj prolog
  600. 62066 restore D1
  601. 62069 restore C
  602. 6206B obj has right type?
  603. 62080 replace TOS w/True
  604. 620A0 replace TOS w/False
  605. 620CC push True
  606. 620E5 execute False
  607. 620E7 which pushes 03AC0 as obj ptr
  608. 62100 BET
  609. 628AC set Carry if C>A
  610. 717E7 expect (D0) to be LSTR
  611. 717E9 get LSTR len
  612. 717EC skip past len
  613. 71811 len * 2 = # nibbles
  614.